#include"comm.hpp"

int main()
{
    //---------------可以用管道来帮助共享内存同步互斥
    //打开管道文件
    //获取
    int shmid=GetShm();
    log(Debug,"get shm done");

    sleep(5);
    //挂接          //强转成char*方便字符串操作
    char* shmaddr=(char*)shmat(shmid,nullptr,0);//返回共享内存虚拟地址
    log(Debug,"attach shm done,shamaddr:0x%x",shmaddr);

    sleep(5);

    //一旦有了共享内存，挂接到自己的地址空间中，你直接把他当成你的内存空间来用即可
    //不需要系统调用
    //通信  ipc 发送消息
    while(true)
    {
        cout<<"Please Enter@";
        fgets(shmaddr,sizeof(shmaddr),stdin);//直接把想通信内容放到共享内存中
        //这里每次都从共享内存开头写的

        //---------------随便往管道内写个字符
    }


    sleep(5);
    //去挂接
    shmdt(shmaddr);
    log(Debug,"detach shm done,shamaddr:0x%x",shmaddr);

    sleep(5);

    log(Debug,"process quit");
}